<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcoap: coap_dtls.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectalign">
   <div id="projectname">libcoap<span id="projectnumber">&#160;4.2.0</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function() { init_codefold(0); });
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('coap__dtls_8h_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>

<div class="header">
  <div class="headertitle"><div class="title">coap_dtls.h</div></div>
</div><!--header-->
<div class="contents">
<a href="coap__dtls_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span><span class="comment">/*</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="comment"> * coap_dtls.h -- (Datagram) Transport Layer Support for libcoap</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span><span class="comment"> *</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="comment"> * Copyright (C) 2016 Olaf Bergmann &lt;bergmann@tzi.org&gt;</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span><span class="comment"> * Copyright (C) 2017 Jean-Claude Michelou &lt;jcm@spinetix.com&gt;</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span><span class="comment"> *</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span><span class="comment"> * This file is part of the CoAP library libcoap. Please see README for terms</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span><span class="comment"> * of use.</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span><span class="comment"> */</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno">   10</span> </div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span><span class="preprocessor">#ifndef COAP_DTLS_H_</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span><span class="preprocessor">#define COAP_DTLS_H_</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno">   13</span> </div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno">   14</span><span class="preprocessor">#include &quot;<a class="code" href="net_8h.html">net.h</a>&quot;</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno">   15</span><span class="preprocessor">#include &quot;<a class="code" href="coap__session_8h.html">coap_session.h</a>&quot;</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno">   16</span><span class="preprocessor">#include &quot;<a class="code" href="pdu_8h.html">pdu.h</a>&quot;</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno">   17</span> </div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__dtls.html#ga9def28dc6da3b77c14e89d63769ec085">coap_dtls_is_supported</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span> </div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__dtls.html#ga55b3b545f0784c7a6135021017317e1b">coap_tls_is_supported</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span> </div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"><a class="line" href="group__dtls.html#ga33b0ad5584a64154547b37edf956e91e">   38</a></span><span class="preprocessor">#define COAP_TLS_LIBRARY_NOTLS 0 </span></div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"><a class="line" href="group__dtls.html#gad96392a988877a91c8d1576191e34cff">   39</a></span><span class="preprocessor">#define COAP_TLS_LIBRARY_TINYDTLS 1 </span></div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"><a class="line" href="group__dtls.html#ga6de1714f227765ef908b1ab865f77f18">   40</a></span><span class="preprocessor">#define COAP_TLS_LIBRARY_OPENSSL 2 </span></div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"><a class="line" href="group__dtls.html#gad4e2243a1ce012460f9687058da32be2">   41</a></span><span class="preprocessor">#define COAP_TLS_LIBRARY_GNUTLS 3 </span></div>
<div class="foldopen" id="foldopen00047" data-start="{" data-end="};">
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="structcoap__tls__version__t.html">   47</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcoap__tls__version__t.html">coap_tls_version_t</a> {</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="structcoap__tls__version__t.html#acd0dcf58914dd79d6110bb4d6a910c58">   48</a></span>  uint64_t <a class="code hl_variable" href="structcoap__tls__version__t.html#acd0dcf58914dd79d6110bb4d6a910c58">version</a>; </div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="structcoap__tls__version__t.html#aec97830d2623e4354e12e00467d3dcc2">   49</a></span>  <span class="keywordtype">int</span> <a class="code hl_variable" href="structcoap__tls__version__t.html#aec97830d2623e4354e12e00467d3dcc2">type</a>; </div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"><a class="line" href="structcoap__tls__version__t.html#a0a7319dc6fd261d2ce899ac3da26d4c1">   50</a></span>  uint64_t <a class="code hl_variable" href="structcoap__tls__version__t.html#a0a7319dc6fd261d2ce899ac3da26d4c1">built_version</a>; </div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"><a class="line" href="group__dtls.html#ga5fd863493d989e394eb535cf140e99bd">   51</a></span>} <a class="code hl_struct" href="structcoap__tls__version__t.html">coap_tls_version_t</a>;</div>
</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno">   52</span> </div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno">   58</span><a class="code hl_struct" href="structcoap__tls__version__t.html">coap_tls_version_t</a> *<a class="code hl_function" href="group__dtls.html#ga30c05cbcf1ca5320ff0349b59f8c7fcb">coap_get_tls_library_version</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno">   59</span> </div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno">   60</span><span class="keyword">struct </span><a class="code hl_struct" href="structcoap__dtls__pki__t.html">coap_dtls_pki_t</a>;</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno">   61</span> </div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"><a class="line" href="group__dtls.html#gac823bdeb357bded215ac1f84dd47f38f">   77</a></span><span class="keyword">typedef</span> int (*<a class="code hl_typedef" href="group__dtls.html#gac823bdeb357bded215ac1f84dd47f38f">coap_dtls_security_setup_t</a>)(<span class="keywordtype">void</span>* tls_session,</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno">   78</span>                                        <span class="keyword">struct </span><a class="code hl_struct" href="structcoap__dtls__pki__t.html">coap_dtls_pki_t</a> *setup_data);</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno">   79</span> </div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"><a class="line" href="group__dtls.html#gadcb9ad4ab157cf64b6bb31b5f426e5dc">   98</a></span><span class="keyword">typedef</span> int (*<a class="code hl_typedef" href="group__dtls.html#gadcb9ad4ab157cf64b6bb31b5f426e5dc">coap_dtls_cn_callback_t</a>)(<span class="keyword">const</span> <span class="keywordtype">char</span> *cn,</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno">   99</span>             <span class="keyword">const</span> <a class="code hl_typedef" href="uthash_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *asn1_public_cert,</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno">  100</span>             <span class="keywordtype">size_t</span> asn1_length,</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno">  101</span>             <a class="code hl_struct" href="structcoap__session__t.html">coap_session_t</a> *coap_session,</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno">  102</span>             <span class="keywordtype">unsigned</span> depth,</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno">  103</span>             <span class="keywordtype">int</span> validated,</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno">  104</span>             <span class="keywordtype">void</span> *arg);</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno">  105</span> </div>
<div class="foldopen" id="foldopen00110" data-start="{" data-end="};">
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"><a class="line" href="group__dtls.html#gacf1b8685e693c4c5fafe2d4d207c2069">  110</a></span><span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code hl_enumeration" href="group__dtls.html#gacf1b8685e693c4c5fafe2d4d207c2069">coap_asn1_privatekey_type_t</a> {</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"><a class="line" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a0d8b252581daca277bbc4aa490a6cc01">  111</a></span>  <a class="code hl_enumvalue" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a0d8b252581daca277bbc4aa490a6cc01">COAP_ASN1_PKEY_NONE</a>,     </div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"><a class="line" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a815f6139ef4796dc825afc72871b1425">  112</a></span>  <a class="code hl_enumvalue" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a815f6139ef4796dc825afc72871b1425">COAP_ASN1_PKEY_RSA</a>,      </div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"><a class="line" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a190dcef2ec78de18ce08555d285c40b7">  113</a></span>  <a class="code hl_enumvalue" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a190dcef2ec78de18ce08555d285c40b7">COAP_ASN1_PKEY_RSA2</a>,     </div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"><a class="line" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a195328aaae1102658ebf3a9bd6d8c027">  114</a></span>  <a class="code hl_enumvalue" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a195328aaae1102658ebf3a9bd6d8c027">COAP_ASN1_PKEY_DSA</a>,      </div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"><a class="line" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a888108396b26f167f26e8a293e7c44e7">  115</a></span>  <a class="code hl_enumvalue" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a888108396b26f167f26e8a293e7c44e7">COAP_ASN1_PKEY_DSA1</a>,     </div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"><a class="line" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a5d86ada626fc1b778eabec59952bec4d">  116</a></span>  <a class="code hl_enumvalue" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a5d86ada626fc1b778eabec59952bec4d">COAP_ASN1_PKEY_DSA2</a>,     </div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"><a class="line" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069ac6a7ddf9cabc5273bb9a69de5e6971be">  117</a></span>  <a class="code hl_enumvalue" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069ac6a7ddf9cabc5273bb9a69de5e6971be">COAP_ASN1_PKEY_DSA3</a>,     </div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"><a class="line" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a4d2b14a573ffb6194d1ba2789e831de2">  118</a></span>  <a class="code hl_enumvalue" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a4d2b14a573ffb6194d1ba2789e831de2">COAP_ASN1_PKEY_DSA4</a>,     </div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"><a class="line" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a05caf595fe597cf31b86e61e4dc21fe5">  119</a></span>  <a class="code hl_enumvalue" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a05caf595fe597cf31b86e61e4dc21fe5">COAP_ASN1_PKEY_DH</a>,       </div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"><a class="line" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a32fec5facd159d2c9ca9d00cd9fb904a">  120</a></span>  <a class="code hl_enumvalue" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a32fec5facd159d2c9ca9d00cd9fb904a">COAP_ASN1_PKEY_DHX</a>,      </div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"><a class="line" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069abeca018329efa3c03150aac3ba058c33">  121</a></span>  <a class="code hl_enumvalue" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069abeca018329efa3c03150aac3ba058c33">COAP_ASN1_PKEY_EC</a>,       </div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"><a class="line" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069ae0e54b44eb5c901d76ddca601e46bda0">  122</a></span>  <a class="code hl_enumvalue" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069ae0e54b44eb5c901d76ddca601e46bda0">COAP_ASN1_PKEY_HMAC</a>,     </div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"><a class="line" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069ae170f1e0d7ec889322b1589b2a9f9923">  123</a></span>  <a class="code hl_enumvalue" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069ae170f1e0d7ec889322b1589b2a9f9923">COAP_ASN1_PKEY_CMAC</a>,     </div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"><a class="line" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a17174dc07690f17fc0fd223c76bb25dc">  124</a></span>  <a class="code hl_enumvalue" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a17174dc07690f17fc0fd223c76bb25dc">COAP_ASN1_PKEY_TLS1_PRF</a>, </div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno">  125</span>  <a class="code hl_enumvalue" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a8f0d588891e977c023bcf6de079dc893">COAP_ASN1_PKEY_HKDF</a>      </div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"><a class="line" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a8f0d588891e977c023bcf6de079dc893">  126</a></span>} <a class="code hl_enumeration" href="group__dtls.html#gacf1b8685e693c4c5fafe2d4d207c2069">coap_asn1_privatekey_type_t</a>;</div>
</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno">  127</span> </div>
<div class="foldopen" id="foldopen00131" data-start="{" data-end="};">
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"><a class="line" href="group__dtls.html#ga8b3c5ffa695a8bfa575319a39517f980">  131</a></span><span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code hl_enumeration" href="group__dtls.html#ga8b3c5ffa695a8bfa575319a39517f980">coap_pki_key_t</a> {</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"><a class="line" href="group__dtls.html#gga8b3c5ffa695a8bfa575319a39517f980a5685869e9efbf03fe4d05120ff810aef">  132</a></span>  <a class="code hl_enumvalue" href="group__dtls.html#gga8b3c5ffa695a8bfa575319a39517f980a5685869e9efbf03fe4d05120ff810aef">COAP_PKI_KEY_PEM</a> = 0,   </div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"><a class="line" href="group__dtls.html#gga8b3c5ffa695a8bfa575319a39517f980ad1bd86830b59058a381a07865bddd3b7">  133</a></span>  <a class="code hl_enumvalue" href="group__dtls.html#gga8b3c5ffa695a8bfa575319a39517f980ad1bd86830b59058a381a07865bddd3b7">COAP_PKI_KEY_ASN1</a>,      </div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"><a class="line" href="group__dtls.html#gaec79178abc54e775811a60bf7c632502">  134</a></span>} <a class="code hl_enumeration" href="group__dtls.html#ga8b3c5ffa695a8bfa575319a39517f980">coap_pki_key_t</a>;</div>
</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno">  135</span> </div>
<div class="foldopen" id="foldopen00139" data-start="{" data-end="};">
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"><a class="line" href="structcoap__pki__key__pem__t.html">  139</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcoap__pki__key__pem__t.html">coap_pki_key_pem_t</a> {</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"><a class="line" href="structcoap__pki__key__pem__t.html#a318b04bfb39d934fae2639da5c599d11">  140</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code hl_variable" href="structcoap__pki__key__pem__t.html#a318b04bfb39d934fae2639da5c599d11">ca_file</a>;       </div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"><a class="line" href="structcoap__pki__key__pem__t.html#ae1785dd0521a14bc8835951312f55803">  141</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code hl_variable" href="structcoap__pki__key__pem__t.html#ae1785dd0521a14bc8835951312f55803">public_cert</a>;   </div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"><a class="line" href="structcoap__pki__key__pem__t.html#afb80e3212cd4e8e5c9cb8f453bf5a942">  142</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code hl_variable" href="structcoap__pki__key__pem__t.html#afb80e3212cd4e8e5c9cb8f453bf5a942">private_key</a>;   </div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"><a class="line" href="group__dtls.html#ga6f6ed6c11432825b9ff054d8790be48e">  143</a></span>} <a class="code hl_struct" href="structcoap__pki__key__pem__t.html">coap_pki_key_pem_t</a>;</div>
</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno">  144</span> </div>
<div class="foldopen" id="foldopen00148" data-start="{" data-end="};">
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"><a class="line" href="structcoap__pki__key__asn1__t.html">  148</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcoap__pki__key__asn1__t.html">coap_pki_key_asn1_t</a> {</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"><a class="line" href="structcoap__pki__key__asn1__t.html#a9c30a93f82295a4b25b5315a1ce4cbaa">  149</a></span>  <span class="keyword">const</span> <a class="code hl_typedef" href="uthash_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *<a class="code hl_variable" href="structcoap__pki__key__asn1__t.html#a9c30a93f82295a4b25b5315a1ce4cbaa">ca_cert</a>;     </div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"><a class="line" href="structcoap__pki__key__asn1__t.html#aa16f42c1efe11b074c64d5f3e94eda33">  150</a></span>  <span class="keyword">const</span> <a class="code hl_typedef" href="uthash_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *<a class="code hl_variable" href="structcoap__pki__key__asn1__t.html#aa16f42c1efe11b074c64d5f3e94eda33">public_cert</a>; </div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"><a class="line" href="structcoap__pki__key__asn1__t.html#a504bc3e7ee0b888a88dd6af563fcceb1">  151</a></span>  <span class="keyword">const</span> <a class="code hl_typedef" href="uthash_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *<a class="code hl_variable" href="structcoap__pki__key__asn1__t.html#a504bc3e7ee0b888a88dd6af563fcceb1">private_key</a>; </div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"><a class="line" href="structcoap__pki__key__asn1__t.html#aa058c22c386cbb59fe33c3d17129a7fd">  152</a></span>  <span class="keywordtype">size_t</span> <a class="code hl_variable" href="structcoap__pki__key__asn1__t.html#aa058c22c386cbb59fe33c3d17129a7fd">ca_cert_len</a>;         </div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"><a class="line" href="structcoap__pki__key__asn1__t.html#a7f0b82d44a05a9f4ae06e8e6c322c608">  153</a></span>  <span class="keywordtype">size_t</span> <a class="code hl_variable" href="structcoap__pki__key__asn1__t.html#a7f0b82d44a05a9f4ae06e8e6c322c608">public_cert_len</a>;     </div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"><a class="line" href="structcoap__pki__key__asn1__t.html#a943b8a66023d48fa9fe7ff105eff24f8">  154</a></span>  <span class="keywordtype">size_t</span> <a class="code hl_variable" href="structcoap__pki__key__asn1__t.html#a943b8a66023d48fa9fe7ff105eff24f8">private_key_len</a>;     </div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"><a class="line" href="structcoap__pki__key__asn1__t.html#a55296c7278c11f29066bdaac19b111b0">  155</a></span>  <a class="code hl_enumeration" href="group__dtls.html#gacf1b8685e693c4c5fafe2d4d207c2069">coap_asn1_privatekey_type_t</a> <a class="code hl_variable" href="structcoap__pki__key__asn1__t.html#a55296c7278c11f29066bdaac19b111b0">private_key_type</a>; </div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"><a class="line" href="group__dtls.html#gabf4184bd801dd9757921b3f41a678434">  156</a></span>} <a class="code hl_struct" href="structcoap__pki__key__asn1__t.html">coap_pki_key_asn1_t</a>;</div>
</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno">  157</span> </div>
<div class="foldopen" id="foldopen00161" data-start="{" data-end="};">
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"><a class="line" href="structcoap__dtls__key__t.html">  161</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcoap__dtls__key__t.html">coap_dtls_key_t</a> {</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"><a class="line" href="structcoap__dtls__key__t.html#aa241aa8d0dc8c425ddf97bf869f65abc">  162</a></span>  <a class="code hl_enumeration" href="group__dtls.html#ga8b3c5ffa695a8bfa575319a39517f980">coap_pki_key_t</a> <a class="code hl_variable" href="structcoap__dtls__key__t.html#aa241aa8d0dc8c425ddf97bf869f65abc">key_type</a>;          </div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno">  163</span>  <span class="keyword">union </span>{</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"><a class="line" href="structcoap__dtls__key__t.html#a3ef67cd1eeaef460cc19c00bcabeb617">  164</a></span>    <a class="code hl_struct" href="structcoap__pki__key__pem__t.html">coap_pki_key_pem_t</a> <a class="code hl_variable" href="structcoap__dtls__key__t.html#a3ef67cd1eeaef460cc19c00bcabeb617">pem</a>;         </div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"><a class="line" href="structcoap__dtls__key__t.html#abf2a9f92eb9c30895e7ac7a6fb8cac78">  165</a></span>    <a class="code hl_struct" href="structcoap__pki__key__asn1__t.html">coap_pki_key_asn1_t</a> <a class="code hl_variable" href="structcoap__dtls__key__t.html#abf2a9f92eb9c30895e7ac7a6fb8cac78">asn1</a>;       </div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"><a class="line" href="structcoap__dtls__key__t.html#a975d3154f696292646d0ba1d8d613001">  166</a></span>  } <a class="code hl_variable" href="structcoap__dtls__key__t.html#a975d3154f696292646d0ba1d8d613001">key</a>;</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"><a class="line" href="group__dtls.html#ga3be52f412f8fb22b96521fb10e6b100c">  167</a></span>} <a class="code hl_struct" href="structcoap__dtls__key__t.html">coap_dtls_key_t</a>;</div>
</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno">  168</span> </div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"><a class="line" href="group__dtls.html#gad7c1c23e78398067ad9eb8bd70333735">  182</a></span><span class="keyword">typedef</span> <a class="code hl_struct" href="structcoap__dtls__key__t.html">coap_dtls_key_t</a> *(*coap_dtls_sni_callback_t)(<span class="keyword">const</span> <span class="keywordtype">char</span> *sni,</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno">  183</span>             <span class="keywordtype">void</span>* arg);</div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno">  184</span> </div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno">  185</span> </div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"><a class="line" href="group__dtls.html#ga6494be4b6aa3c5d86232cb5ba19fef83">  186</a></span><span class="preprocessor">#define COAP_DTLS_PKI_SETUP_VERSION 1 </span></div>
<div class="foldopen" id="foldopen00191" data-start="{" data-end="};">
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"><a class="line" href="structcoap__dtls__pki__t.html">  191</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcoap__dtls__pki__t.html">coap_dtls_pki_t</a> {</div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"><a class="line" href="structcoap__dtls__pki__t.html#a6311e9978d304e0aff143ebffe424ea4">  192</a></span>  <a class="code hl_typedef" href="uthash_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> <a class="code hl_variable" href="structcoap__dtls__pki__t.html#a6311e9978d304e0aff143ebffe424ea4">version</a>; </div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno">  194</span>  <span class="comment">/* Options to enable different TLS functionality in libcoap */</span></div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"><a class="line" href="structcoap__dtls__pki__t.html#aac00e49483212c37c25435f03a6a6cb6">  195</a></span>  <a class="code hl_typedef" href="uthash_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> <a class="code hl_variable" href="structcoap__dtls__pki__t.html#aac00e49483212c37c25435f03a6a6cb6">verify_peer_cert</a>;        </div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"><a class="line" href="structcoap__dtls__pki__t.html#a1e82f78f5b4b930eb2cee687adbcb455">  196</a></span>  <a class="code hl_typedef" href="uthash_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> <a class="code hl_variable" href="structcoap__dtls__pki__t.html#a1e82f78f5b4b930eb2cee687adbcb455">require_peer_cert</a>;       </div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"><a class="line" href="structcoap__dtls__pki__t.html#ad125a6d4424f2603a9ff9df7338fd312">  197</a></span>  <a class="code hl_typedef" href="uthash_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> <a class="code hl_variable" href="structcoap__dtls__pki__t.html#ad125a6d4424f2603a9ff9df7338fd312">allow_self_signed</a>;       </div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"><a class="line" href="structcoap__dtls__pki__t.html#aa92df455480e1ce202d48fbac3ee5422">  198</a></span>  <a class="code hl_typedef" href="uthash_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> <a class="code hl_variable" href="structcoap__dtls__pki__t.html#aa92df455480e1ce202d48fbac3ee5422">allow_expired_certs</a>;     </div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"><a class="line" href="structcoap__dtls__pki__t.html#a3f0ebaa3461576eee13f74ea5a362247">  199</a></span>  <a class="code hl_typedef" href="uthash_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> <a class="code hl_variable" href="structcoap__dtls__pki__t.html#a3f0ebaa3461576eee13f74ea5a362247">cert_chain_validation</a>;   </div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"><a class="line" href="structcoap__dtls__pki__t.html#a85209ca6aa358e45b4b065b0c39dd360">  200</a></span>  <a class="code hl_typedef" href="uthash_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> <a class="code hl_variable" href="structcoap__dtls__pki__t.html#a85209ca6aa358e45b4b065b0c39dd360">cert_chain_verify_depth</a>; </div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"><a class="line" href="structcoap__dtls__pki__t.html#a6651ec064838213f18f49c6044cc7b4f">  201</a></span>  <a class="code hl_typedef" href="uthash_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> <a class="code hl_variable" href="structcoap__dtls__pki__t.html#a6651ec064838213f18f49c6044cc7b4f">check_cert_revocation</a>;   </div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"><a class="line" href="structcoap__dtls__pki__t.html#a1125f0a08bf12be0a1a0cb63a4f3f2af">  202</a></span>  <a class="code hl_typedef" href="uthash_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> <a class="code hl_variable" href="structcoap__dtls__pki__t.html#a1125f0a08bf12be0a1a0cb63a4f3f2af">allow_no_crl</a>;            </div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"><a class="line" href="structcoap__dtls__pki__t.html#ae1ae69b200d26250747f8602af02e990">  203</a></span>  <a class="code hl_typedef" href="uthash_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> <a class="code hl_variable" href="structcoap__dtls__pki__t.html#ae1ae69b200d26250747f8602af02e990">allow_expired_crl</a>;       </div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"><a class="line" href="structcoap__dtls__pki__t.html#ad2742585d28821bdf8fe824b117643ac">  204</a></span>  <a class="code hl_typedef" href="uthash_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> <a class="code hl_variable" href="structcoap__dtls__pki__t.html#ad2742585d28821bdf8fe824b117643ac">reserved</a>[6];             </div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno">  206</span>                                   <span class="comment">/* Size of 6 chosen to align to next</span></div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno">  207</span><span class="comment">                                    * parameter, so if newly defined option</span></div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno">  208</span><span class="comment">                                    * it can use one of the reserverd slot so</span></div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno">  209</span><span class="comment">                                    * no need to change</span></div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno">  210</span><span class="comment">                                    * COAP_DTLS_PKI_SETUP_VERSION and just</span></div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno">  211</span><span class="comment">                                    * decrement the reserved[] count.</span></div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno">  212</span><span class="comment">                                    */</span></div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno">  213</span> </div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"><a class="line" href="structcoap__dtls__pki__t.html#ae136f22847af5f51ded7b3f19bc538df">  218</a></span>  <a class="code hl_typedef" href="group__dtls.html#gadcb9ad4ab157cf64b6bb31b5f426e5dc">coap_dtls_cn_callback_t</a> <a class="code hl_variable" href="structcoap__dtls__pki__t.html#ae136f22847af5f51ded7b3f19bc538df">validate_cn_call_back</a>;</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"><a class="line" href="structcoap__dtls__pki__t.html#a16fb73f2ceb8aafed7256cdf9ffec8f6">  219</a></span>  <span class="keywordtype">void</span> *<a class="code hl_variable" href="structcoap__dtls__pki__t.html#a16fb73f2ceb8aafed7256cdf9ffec8f6">cn_call_back_arg</a>;  </div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"><a class="line" href="structcoap__dtls__pki__t.html#ad078b00881086bb7425187f2e7de90ab">  226</a></span>  <a class="code hl_typedef" href="group__dtls.html#gad7c1c23e78398067ad9eb8bd70333735">coap_dtls_sni_callback_t</a> <a class="code hl_variable" href="structcoap__dtls__pki__t.html#ad078b00881086bb7425187f2e7de90ab">validate_sni_call_back</a>;</div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"><a class="line" href="structcoap__dtls__pki__t.html#add86314537669f49fca148651fbf842e">  227</a></span>  <span class="keywordtype">void</span> *<a class="code hl_variable" href="structcoap__dtls__pki__t.html#add86314537669f49fca148651fbf842e">sni_call_back_arg</a>;  </div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"><a class="line" href="structcoap__dtls__pki__t.html#a9e4bb23daf38e695b1fa7b7fddd0072d">  234</a></span>  <a class="code hl_typedef" href="group__dtls.html#gac823bdeb357bded215ac1f84dd47f38f">coap_dtls_security_setup_t</a> <a class="code hl_variable" href="structcoap__dtls__pki__t.html#a9e4bb23daf38e695b1fa7b7fddd0072d">additional_tls_setup_call_back</a>;</div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno">  235</span> </div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"><a class="line" href="structcoap__dtls__pki__t.html#abcd4a892d8823201b52597b702e70348">  236</a></span>  <span class="keywordtype">char</span>* <a class="code hl_variable" href="structcoap__dtls__pki__t.html#abcd4a892d8823201b52597b702e70348">client_sni</a>;    </div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"><a class="line" href="structcoap__dtls__pki__t.html#affa25ec7295abef854ec772cb7a45325">  240</a></span>  <a class="code hl_struct" href="structcoap__dtls__key__t.html">coap_dtls_key_t</a> <a class="code hl_variable" href="structcoap__dtls__pki__t.html#affa25ec7295abef854ec772cb7a45325">pki_key</a>;  </div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"><a class="line" href="group__dtls.html#gaeaa1394cdb4d4f1e522a751c17b7bb32">  241</a></span>} <a class="code hl_struct" href="structcoap__dtls__pki__t.html">coap_dtls_pki_t</a>;</div>
</div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno">  242</span> </div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno">  261</span><span class="keywordtype">void</span> *</div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"><a class="line" href="group__dtls__internal.html#ga18105ccd6f93d25fdeb8ce1a8791543f">  262</a></span><a class="code hl_function" href="group__dtls__internal.html#ga18105ccd6f93d25fdeb8ce1a8791543f">coap_dtls_new_context</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcoap__context__t.html">coap_context_t</a> *coap_context);</div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno">  263</span> </div>
<div class="foldopen" id="foldopen00264" data-start="{" data-end="};">
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"><a class="line" href="group__dtls__internal.html#ga4dbea8aa6943bcf865990b5cebb6bfa4">  264</a></span><span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code hl_enumeration" href="group__dtls__internal.html#ga4dbea8aa6943bcf865990b5cebb6bfa4">coap_dtls_role_t</a> {</div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"><a class="line" href="group__dtls__internal.html#gga4dbea8aa6943bcf865990b5cebb6bfa4a7f8045717b35f240ee46c987a8d9ce26">  265</a></span>  <a class="code hl_enumvalue" href="group__dtls__internal.html#gga4dbea8aa6943bcf865990b5cebb6bfa4a7f8045717b35f240ee46c987a8d9ce26">COAP_DTLS_ROLE_CLIENT</a>, </div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno">  266</span>  <a class="code hl_enumvalue" href="group__dtls__internal.html#gga4dbea8aa6943bcf865990b5cebb6bfa4a07db1c396fbda1115124a22b3b9cb4da">COAP_DTLS_ROLE_SERVER</a>  </div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"><a class="line" href="group__dtls__internal.html#gga4dbea8aa6943bcf865990b5cebb6bfa4a07db1c396fbda1115124a22b3b9cb4da">  267</a></span>} <a class="code hl_enumeration" href="group__dtls__internal.html#ga4dbea8aa6943bcf865990b5cebb6bfa4">coap_dtls_role_t</a>;</div>
</div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno">  268</span> </div>
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno">  290</span><span class="keywordtype">int</span></div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"><a class="line" href="group__dtls__internal.html#ga6b350a528900b867dcf0c604239b1512">  291</a></span><a class="code hl_function" href="group__dtls__internal.html#ga6b350a528900b867dcf0c604239b1512">coap_dtls_context_set_psk</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcoap__context__t.html">coap_context_t</a> *coap_context,</div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno">  292</span>                          <span class="keyword">const</span> <span class="keywordtype">char</span> *identity_hint,</div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno">  293</span>                          <a class="code hl_enumeration" href="group__dtls__internal.html#ga4dbea8aa6943bcf865990b5cebb6bfa4">coap_dtls_role_t</a> role);</div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno">  294</span> </div>
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno">  314</span><span class="keywordtype">int</span></div>
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"><a class="line" href="group__dtls__internal.html#gae916047df669849d71470609242f32cc">  315</a></span><a class="code hl_function" href="group__dtls__internal.html#gae916047df669849d71470609242f32cc">coap_dtls_context_set_pki</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcoap__context__t.html">coap_context_t</a> *coap_context,</div>
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno">  316</span>                          <a class="code hl_struct" href="structcoap__dtls__pki__t.html">coap_dtls_pki_t</a> *setup_data,</div>
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno">  317</span>                          <a class="code hl_enumeration" href="group__dtls__internal.html#ga4dbea8aa6943bcf865990b5cebb6bfa4">coap_dtls_role_t</a> role);</div>
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno">  318</span> </div>
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno">  333</span><span class="keywordtype">int</span></div>
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"><a class="line" href="group__dtls__internal.html#ga7f0f3e5770a16afa5a889bec3848e6aa">  334</a></span><a class="code hl_function" href="group__dtls__internal.html#ga7f0f3e5770a16afa5a889bec3848e6aa">coap_dtls_context_set_pki_root_cas</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcoap__context__t.html">coap_context_t</a> *coap_context,</div>
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno">  335</span>                                   <span class="keyword">const</span> <span class="keywordtype">char</span> *ca_file,</div>
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno">  336</span>                                   <span class="keyword">const</span> <span class="keywordtype">char</span> *ca_dir);</div>
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno">  337</span> </div>
<div class="line"><a id="l00349" name="l00349"></a><span class="lineno"><a class="line" href="group__dtls__internal.html#ga950193b94632ac9d4325e51248043bae">  349</a></span><span class="keywordtype">int</span> <a class="code hl_function" href="group__dtls__internal.html#ga950193b94632ac9d4325e51248043bae">coap_dtls_context_check_keys_enabled</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcoap__context__t.html">coap_context_t</a> *coap_context);</div>
<div class="line"><a id="l00350" name="l00350"></a><span class="lineno">  350</span> </div>
<div class="line"><a id="l00358" name="l00358"></a><span class="lineno"><a class="line" href="group__dtls__internal.html#gac7aee70a85755e03f0dc0b5e8896ad29">  358</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="group__dtls__internal.html#gac7aee70a85755e03f0dc0b5e8896ad29">coap_dtls_free_context</a>(<span class="keywordtype">void</span> *dtls_context);</div>
<div class="line"><a id="l00359" name="l00359"></a><span class="lineno">  359</span> </div>
<div class="line"><a id="l00370" name="l00370"></a><span class="lineno"><a class="line" href="group__dtls__internal.html#ga40ff9b2ab37e3244de024fc0daa6c930">  370</a></span><span class="keywordtype">void</span> *<a class="code hl_function" href="group__dtls__internal.html#ga40ff9b2ab37e3244de024fc0daa6c930">coap_dtls_new_client_session</a>(<a class="code hl_struct" href="structcoap__session__t.html">coap_session_t</a> *coap_session);</div>
<div class="line"><a id="l00371" name="l00371"></a><span class="lineno">  371</span> </div>
<div class="line"><a id="l00385" name="l00385"></a><span class="lineno"><a class="line" href="group__dtls__internal.html#ga550971e2cd3fcdc4efd5a27e290563c2">  385</a></span><span class="keywordtype">void</span> *<a class="code hl_function" href="group__dtls__internal.html#ga550971e2cd3fcdc4efd5a27e290563c2">coap_dtls_new_server_session</a>(<a class="code hl_struct" href="structcoap__session__t.html">coap_session_t</a> *coap_session);</div>
<div class="line"><a id="l00386" name="l00386"></a><span class="lineno">  386</span> </div>
<div class="line"><a id="l00395" name="l00395"></a><span class="lineno"><a class="line" href="group__dtls__internal.html#ga75ff6595aed94e16af18f531fe2c4e3f">  395</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="group__dtls__internal.html#ga75ff6595aed94e16af18f531fe2c4e3f">coap_dtls_free_session</a>(<a class="code hl_struct" href="structcoap__session__t.html">coap_session_t</a> *coap_session);</div>
<div class="line"><a id="l00396" name="l00396"></a><span class="lineno">  396</span> </div>
<div class="line"><a id="l00405" name="l00405"></a><span class="lineno"><a class="line" href="group__dtls__internal.html#ga428a9ec0e5d5250da2c4167789b15393">  405</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="group__dtls__internal.html#ga428a9ec0e5d5250da2c4167789b15393">coap_dtls_session_update_mtu</a>(<a class="code hl_struct" href="structcoap__session__t.html">coap_session_t</a> *coap_session);</div>
<div class="line"><a id="l00406" name="l00406"></a><span class="lineno">  406</span> </div>
<div class="line"><a id="l00419" name="l00419"></a><span class="lineno"><a class="line" href="group__dtls__internal.html#ga5ef71c21d781100ddce5caf073eb9898">  419</a></span><span class="keywordtype">int</span> <a class="code hl_function" href="group__dtls__internal.html#ga5ef71c21d781100ddce5caf073eb9898">coap_dtls_send</a>(<a class="code hl_struct" href="structcoap__session__t.html">coap_session_t</a> *coap_session,</div>
<div class="line"><a id="l00420" name="l00420"></a><span class="lineno">  420</span>                   <span class="keyword">const</span> <a class="code hl_typedef" href="uthash_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *data,</div>
<div class="line"><a id="l00421" name="l00421"></a><span class="lineno">  421</span>                   <span class="keywordtype">size_t</span> data_len);</div>
<div class="line"><a id="l00422" name="l00422"></a><span class="lineno">  422</span> </div>
<div class="line"><a id="l00431" name="l00431"></a><span class="lineno">  431</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__dtls__internal.html#ga7954de23333db4fdc4043c35022e49f5">coap_dtls_is_context_timeout</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a id="l00432" name="l00432"></a><span class="lineno">  432</span> </div>
<div class="line"><a id="l00442" name="l00442"></a><span class="lineno"><a class="line" href="group__dtls__internal.html#ga0fad2bdf0101bfc40bc66bba0366d588">  442</a></span><a class="code hl_typedef" href="group__clock.html#ga97ff1502e211b4ee6c3f15a598833438">coap_tick_t</a> <a class="code hl_function" href="group__dtls__internal.html#ga0fad2bdf0101bfc40bc66bba0366d588">coap_dtls_get_context_timeout</a>(<span class="keywordtype">void</span> *dtls_context);</div>
<div class="line"><a id="l00443" name="l00443"></a><span class="lineno">  443</span> </div>
<div class="line"><a id="l00453" name="l00453"></a><span class="lineno"><a class="line" href="group__dtls__internal.html#ga61a68399a9abc6a222cde8cb10046805">  453</a></span><a class="code hl_typedef" href="group__clock.html#ga97ff1502e211b4ee6c3f15a598833438">coap_tick_t</a> <a class="code hl_function" href="group__dtls__internal.html#ga61a68399a9abc6a222cde8cb10046805">coap_dtls_get_timeout</a>(<a class="code hl_struct" href="structcoap__session__t.html">coap_session_t</a> *coap_session);</div>
<div class="line"><a id="l00454" name="l00454"></a><span class="lineno">  454</span> </div>
<div class="line"><a id="l00462" name="l00462"></a><span class="lineno"><a class="line" href="group__dtls__internal.html#ga2d7e0055b0f8a3cc6514a02fa47e3ea8">  462</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="group__dtls__internal.html#ga2d7e0055b0f8a3cc6514a02fa47e3ea8">coap_dtls_handle_timeout</a>(<a class="code hl_struct" href="structcoap__session__t.html">coap_session_t</a> *coap_session);</div>
<div class="line"><a id="l00463" name="l00463"></a><span class="lineno">  463</span> </div>
<div class="line"><a id="l00476" name="l00476"></a><span class="lineno"><a class="line" href="group__dtls__internal.html#gaf12fde0c5f40468e42ffd06d7ad23ba8">  476</a></span><span class="keywordtype">int</span> <a class="code hl_function" href="group__dtls__internal.html#gaf12fde0c5f40468e42ffd06d7ad23ba8">coap_dtls_receive</a>(<a class="code hl_struct" href="structcoap__session__t.html">coap_session_t</a> *coap_session,</div>
<div class="line"><a id="l00477" name="l00477"></a><span class="lineno">  477</span>                      <span class="keyword">const</span> <a class="code hl_typedef" href="uthash_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *data,</div>
<div class="line"><a id="l00478" name="l00478"></a><span class="lineno">  478</span>                      <span class="keywordtype">size_t</span> data_len);</div>
<div class="line"><a id="l00479" name="l00479"></a><span class="lineno">  479</span> </div>
<div class="line"><a id="l00494" name="l00494"></a><span class="lineno"><a class="line" href="group__dtls__internal.html#ga63b38f84ef4cbc1151716284b98166bb">  494</a></span><span class="keywordtype">int</span> <a class="code hl_function" href="group__dtls__internal.html#ga63b38f84ef4cbc1151716284b98166bb">coap_dtls_hello</a>(<a class="code hl_struct" href="structcoap__session__t.html">coap_session_t</a> *coap_session,</div>
<div class="line"><a id="l00495" name="l00495"></a><span class="lineno">  495</span>                    <span class="keyword">const</span> <a class="code hl_typedef" href="uthash_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *data,</div>
<div class="line"><a id="l00496" name="l00496"></a><span class="lineno">  496</span>                    <span class="keywordtype">size_t</span> data_len);</div>
<div class="line"><a id="l00497" name="l00497"></a><span class="lineno">  497</span> </div>
<div class="line"><a id="l00507" name="l00507"></a><span class="lineno"><a class="line" href="group__dtls__internal.html#ga4362af8e7373ac530fd7ea8fb868b881">  507</a></span><span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code hl_function" href="group__dtls__internal.html#ga4362af8e7373ac530fd7ea8fb868b881">coap_dtls_get_overhead</a>(<a class="code hl_struct" href="structcoap__session__t.html">coap_session_t</a> *coap_session);</div>
<div class="line"><a id="l00508" name="l00508"></a><span class="lineno">  508</span> </div>
<div class="line"><a id="l00521" name="l00521"></a><span class="lineno"><a class="line" href="group__dtls__internal.html#ga410576375ba1940a5a9c8da6d96ee95f">  521</a></span><span class="keywordtype">void</span> *<a class="code hl_function" href="group__dtls__internal.html#ga410576375ba1940a5a9c8da6d96ee95f">coap_tls_new_client_session</a>(<a class="code hl_struct" href="structcoap__session__t.html">coap_session_t</a> *coap_session, <span class="keywordtype">int</span> *connected);</div>
<div class="line"><a id="l00522" name="l00522"></a><span class="lineno">  522</span> </div>
<div class="line"><a id="l00535" name="l00535"></a><span class="lineno"><a class="line" href="group__dtls__internal.html#ga549f1e9b55e423fd3e5023736ab32621">  535</a></span><span class="keywordtype">void</span> *<a class="code hl_function" href="group__dtls__internal.html#ga549f1e9b55e423fd3e5023736ab32621">coap_tls_new_server_session</a>(<a class="code hl_struct" href="structcoap__session__t.html">coap_session_t</a> *coap_session, <span class="keywordtype">int</span> *connected);</div>
<div class="line"><a id="l00536" name="l00536"></a><span class="lineno">  536</span> </div>
<div class="line"><a id="l00545" name="l00545"></a><span class="lineno"><a class="line" href="group__dtls__internal.html#ga0c9463a35a0ec39a7154be45f6064a38">  545</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="group__dtls__internal.html#ga0c9463a35a0ec39a7154be45f6064a38">coap_tls_free_session</a>( <a class="code hl_struct" href="structcoap__session__t.html">coap_session_t</a> *coap_session );</div>
<div class="line"><a id="l00546" name="l00546"></a><span class="lineno">  546</span> </div>
<div class="line"><a id="l00559" name="l00559"></a><span class="lineno"><a class="line" href="group__dtls__internal.html#ga446d37acb840b785bc166d69b582edb7">  559</a></span>ssize_t <a class="code hl_function" href="group__dtls__internal.html#ga446d37acb840b785bc166d69b582edb7">coap_tls_write</a>(<a class="code hl_struct" href="structcoap__session__t.html">coap_session_t</a> *coap_session,</div>
<div class="line"><a id="l00560" name="l00560"></a><span class="lineno">  560</span>                       <span class="keyword">const</span> <a class="code hl_typedef" href="uthash_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *data,</div>
<div class="line"><a id="l00561" name="l00561"></a><span class="lineno">  561</span>                       <span class="keywordtype">size_t</span> data_len</div>
<div class="line"><a id="l00562" name="l00562"></a><span class="lineno">  562</span>                       );</div>
<div class="line"><a id="l00563" name="l00563"></a><span class="lineno">  563</span> </div>
<div class="line"><a id="l00576" name="l00576"></a><span class="lineno"><a class="line" href="group__dtls__internal.html#ga924fca2b98f7bc3515e8b661297ee893">  576</a></span>ssize_t <a class="code hl_function" href="group__dtls__internal.html#ga924fca2b98f7bc3515e8b661297ee893">coap_tls_read</a>(<a class="code hl_struct" href="structcoap__session__t.html">coap_session_t</a> *coap_session,</div>
<div class="line"><a id="l00577" name="l00577"></a><span class="lineno">  577</span>                      <a class="code hl_typedef" href="uthash_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *data,</div>
<div class="line"><a id="l00578" name="l00578"></a><span class="lineno">  578</span>                      <span class="keywordtype">size_t</span> data_len</div>
<div class="line"><a id="l00579" name="l00579"></a><span class="lineno">  579</span>                      );</div>
<div class="line"><a id="l00580" name="l00580"></a><span class="lineno">  580</span> </div>
<div class="line"><a id="l00587" name="l00587"></a><span class="lineno">  587</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__dtls__internal.html#ga1e81d904e13ccf3af6a56ab3ebdc8a34">coap_dtls_startup</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a id="l00588" name="l00588"></a><span class="lineno">  588</span> </div>
<div class="line"><a id="l00598" name="l00598"></a><span class="lineno">  598</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__logging.html#ga2ed215efb94dd270a6d55fb274f62b52">coap_dtls_set_log_level</a>(<span class="keywordtype">int</span> level);</div>
<div class="line"><a id="l00599" name="l00599"></a><span class="lineno">  599</span> </div>
<div class="line"><a id="l00606" name="l00606"></a><span class="lineno">  606</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__logging.html#gaa57b34084a2baf0b83e7ffea5653ea25">coap_dtls_get_log_level</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a id="l00607" name="l00607"></a><span class="lineno">  607</span> </div>
<div class="line"><a id="l00608" name="l00608"></a><span class="lineno">  608</span> </div>
<div class="line"><a id="l00609" name="l00609"></a><span class="lineno">  609</span><span class="preprocessor">#endif </span><span class="comment">/* COAP_DTLS_H */</span><span class="preprocessor"></span></div>
<div class="ttc" id="acoap__session_8h_html"><div class="ttname"><a href="coap__session_8h.html">coap_session.h</a></div></div>
<div class="ttc" id="agroup__clock_html_ga97ff1502e211b4ee6c3f15a598833438"><div class="ttname"><a href="group__clock.html#ga97ff1502e211b4ee6c3f15a598833438">coap_tick_t</a></div><div class="ttdeci">uint64_t coap_tick_t</div><div class="ttdoc">This data type represents internal timer ticks with COAP_TICKS_PER_SECOND resolution.</div><div class="ttdef"><b>Definition</b> <a href="coap__time_8h_source.html#l00085">coap_time.h:85</a></div></div>
<div class="ttc" id="agroup__dtls__internal_html_ga0c9463a35a0ec39a7154be45f6064a38"><div class="ttname"><a href="group__dtls__internal.html#ga0c9463a35a0ec39a7154be45f6064a38">coap_tls_free_session</a></div><div class="ttdeci">void coap_tls_free_session(coap_session_t *coap_session)</div><div class="ttdoc">Terminates the TLS session (may send an ALERT if necessary) then frees the underlying TLS library obj...</div></div>
<div class="ttc" id="agroup__dtls__internal_html_ga0fad2bdf0101bfc40bc66bba0366d588"><div class="ttname"><a href="group__dtls__internal.html#ga0fad2bdf0101bfc40bc66bba0366d588">coap_dtls_get_context_timeout</a></div><div class="ttdeci">coap_tick_t coap_dtls_get_context_timeout(void *dtls_context)</div><div class="ttdoc">Do all pending retransmits and get next timeout.</div></div>
<div class="ttc" id="agroup__dtls__internal_html_ga18105ccd6f93d25fdeb8ce1a8791543f"><div class="ttname"><a href="group__dtls__internal.html#ga18105ccd6f93d25fdeb8ce1a8791543f">coap_dtls_new_context</a></div><div class="ttdeci">void * coap_dtls_new_context(struct coap_context_t *coap_context)</div><div class="ttdoc">Creates a new DTLS context for the given coap_context.</div></div>
<div class="ttc" id="agroup__dtls__internal_html_ga1e81d904e13ccf3af6a56ab3ebdc8a34"><div class="ttname"><a href="group__dtls__internal.html#ga1e81d904e13ccf3af6a56ab3ebdc8a34">coap_dtls_startup</a></div><div class="ttdeci">void coap_dtls_startup(void)</div><div class="ttdoc">Initialize the underlying (D)TLS Library layer.</div><div class="ttdef"><b>Definition</b> <a href="coap__notls_8c_source.html#l00072">coap_notls.c:72</a></div></div>
<div class="ttc" id="agroup__dtls__internal_html_ga2d7e0055b0f8a3cc6514a02fa47e3ea8"><div class="ttname"><a href="group__dtls__internal.html#ga2d7e0055b0f8a3cc6514a02fa47e3ea8">coap_dtls_handle_timeout</a></div><div class="ttdeci">void coap_dtls_handle_timeout(coap_session_t *coap_session)</div><div class="ttdoc">Handle a DTLS timeout expiration.</div></div>
<div class="ttc" id="agroup__dtls__internal_html_ga40ff9b2ab37e3244de024fc0daa6c930"><div class="ttname"><a href="group__dtls__internal.html#ga40ff9b2ab37e3244de024fc0daa6c930">coap_dtls_new_client_session</a></div><div class="ttdeci">void * coap_dtls_new_client_session(coap_session_t *coap_session)</div><div class="ttdoc">Create a new client-side session.</div></div>
<div class="ttc" id="agroup__dtls__internal_html_ga410576375ba1940a5a9c8da6d96ee95f"><div class="ttname"><a href="group__dtls__internal.html#ga410576375ba1940a5a9c8da6d96ee95f">coap_tls_new_client_session</a></div><div class="ttdeci">void * coap_tls_new_client_session(coap_session_t *coap_session, int *connected)</div><div class="ttdoc">Create a new TLS client-side session.</div></div>
<div class="ttc" id="agroup__dtls__internal_html_ga428a9ec0e5d5250da2c4167789b15393"><div class="ttname"><a href="group__dtls__internal.html#ga428a9ec0e5d5250da2c4167789b15393">coap_dtls_session_update_mtu</a></div><div class="ttdeci">void coap_dtls_session_update_mtu(coap_session_t *coap_session)</div><div class="ttdoc">Notify of a change in the CoAP session's MTU, for example after a PMTU update.</div></div>
<div class="ttc" id="agroup__dtls__internal_html_ga4362af8e7373ac530fd7ea8fb868b881"><div class="ttname"><a href="group__dtls__internal.html#ga4362af8e7373ac530fd7ea8fb868b881">coap_dtls_get_overhead</a></div><div class="ttdeci">unsigned int coap_dtls_get_overhead(coap_session_t *coap_session)</div><div class="ttdoc">Get DTLS overhead over cleartext PDUs.</div></div>
<div class="ttc" id="agroup__dtls__internal_html_ga446d37acb840b785bc166d69b582edb7"><div class="ttname"><a href="group__dtls__internal.html#ga446d37acb840b785bc166d69b582edb7">coap_tls_write</a></div><div class="ttdeci">ssize_t coap_tls_write(coap_session_t *coap_session, const uint8_t *data, size_t data_len)</div><div class="ttdoc">Send data to a TLS peer, with implicit flush.</div></div>
<div class="ttc" id="agroup__dtls__internal_html_ga4dbea8aa6943bcf865990b5cebb6bfa4"><div class="ttname"><a href="group__dtls__internal.html#ga4dbea8aa6943bcf865990b5cebb6bfa4">coap_dtls_role_t</a></div><div class="ttdeci">coap_dtls_role_t</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00264">coap_dtls.h:264</a></div></div>
<div class="ttc" id="agroup__dtls__internal_html_ga549f1e9b55e423fd3e5023736ab32621"><div class="ttname"><a href="group__dtls__internal.html#ga549f1e9b55e423fd3e5023736ab32621">coap_tls_new_server_session</a></div><div class="ttdeci">void * coap_tls_new_server_session(coap_session_t *coap_session, int *connected)</div><div class="ttdoc">Create a TLS new server-side session.</div></div>
<div class="ttc" id="agroup__dtls__internal_html_ga550971e2cd3fcdc4efd5a27e290563c2"><div class="ttname"><a href="group__dtls__internal.html#ga550971e2cd3fcdc4efd5a27e290563c2">coap_dtls_new_server_session</a></div><div class="ttdeci">void * coap_dtls_new_server_session(coap_session_t *coap_session)</div><div class="ttdoc">Create a new DTLS server-side session.</div></div>
<div class="ttc" id="agroup__dtls__internal_html_ga5ef71c21d781100ddce5caf073eb9898"><div class="ttname"><a href="group__dtls__internal.html#ga5ef71c21d781100ddce5caf073eb9898">coap_dtls_send</a></div><div class="ttdeci">int coap_dtls_send(coap_session_t *coap_session, const uint8_t *data, size_t data_len)</div><div class="ttdoc">Send data to a DTLS peer.</div></div>
<div class="ttc" id="agroup__dtls__internal_html_ga61a68399a9abc6a222cde8cb10046805"><div class="ttname"><a href="group__dtls__internal.html#ga61a68399a9abc6a222cde8cb10046805">coap_dtls_get_timeout</a></div><div class="ttdeci">coap_tick_t coap_dtls_get_timeout(coap_session_t *coap_session)</div><div class="ttdoc">Get next timeout for this session.</div></div>
<div class="ttc" id="agroup__dtls__internal_html_ga63b38f84ef4cbc1151716284b98166bb"><div class="ttname"><a href="group__dtls__internal.html#ga63b38f84ef4cbc1151716284b98166bb">coap_dtls_hello</a></div><div class="ttdeci">int coap_dtls_hello(coap_session_t *coap_session, const uint8_t *data, size_t data_len)</div><div class="ttdoc">Handling client HELLO messages from a new candiate peer.</div></div>
<div class="ttc" id="agroup__dtls__internal_html_ga6b350a528900b867dcf0c604239b1512"><div class="ttname"><a href="group__dtls__internal.html#ga6b350a528900b867dcf0c604239b1512">coap_dtls_context_set_psk</a></div><div class="ttdeci">int coap_dtls_context_set_psk(struct coap_context_t *coap_context, const char *identity_hint, coap_dtls_role_t role)</div><div class="ttdoc">Set the DTLS context's default PSK information.</div></div>
<div class="ttc" id="agroup__dtls__internal_html_ga75ff6595aed94e16af18f531fe2c4e3f"><div class="ttname"><a href="group__dtls__internal.html#ga75ff6595aed94e16af18f531fe2c4e3f">coap_dtls_free_session</a></div><div class="ttdeci">void coap_dtls_free_session(coap_session_t *coap_session)</div><div class="ttdoc">Terminates the DTLS session (may send an ALERT if necessary) then frees the underlying TLS library ob...</div></div>
<div class="ttc" id="agroup__dtls__internal_html_ga7954de23333db4fdc4043c35022e49f5"><div class="ttname"><a href="group__dtls__internal.html#ga7954de23333db4fdc4043c35022e49f5">coap_dtls_is_context_timeout</a></div><div class="ttdeci">int coap_dtls_is_context_timeout(void)</div><div class="ttdoc">Check if timeout is handled per CoAP session or per CoAP context.</div><div class="ttdef"><b>Definition</b> <a href="coap__notls_8c_source.html#l00116">coap_notls.c:116</a></div></div>
<div class="ttc" id="agroup__dtls__internal_html_ga7f0f3e5770a16afa5a889bec3848e6aa"><div class="ttname"><a href="group__dtls__internal.html#ga7f0f3e5770a16afa5a889bec3848e6aa">coap_dtls_context_set_pki_root_cas</a></div><div class="ttdeci">int coap_dtls_context_set_pki_root_cas(struct coap_context_t *coap_context, const char *ca_file, const char *ca_dir)</div><div class="ttdoc">Set the dtls context's default Root CA information for a client or server.</div></div>
<div class="ttc" id="agroup__dtls__internal_html_ga924fca2b98f7bc3515e8b661297ee893"><div class="ttname"><a href="group__dtls__internal.html#ga924fca2b98f7bc3515e8b661297ee893">coap_tls_read</a></div><div class="ttdeci">ssize_t coap_tls_read(coap_session_t *coap_session, uint8_t *data, size_t data_len)</div><div class="ttdoc">Read some data from a TLS peer.</div></div>
<div class="ttc" id="agroup__dtls__internal_html_ga950193b94632ac9d4325e51248043bae"><div class="ttname"><a href="group__dtls__internal.html#ga950193b94632ac9d4325e51248043bae">coap_dtls_context_check_keys_enabled</a></div><div class="ttdeci">int coap_dtls_context_check_keys_enabled(struct coap_context_t *coap_context)</div><div class="ttdoc">Check whether one of the coap_dtls_context_set_{psk|pki}() functions have been called.</div></div>
<div class="ttc" id="agroup__dtls__internal_html_gac7aee70a85755e03f0dc0b5e8896ad29"><div class="ttname"><a href="group__dtls__internal.html#gac7aee70a85755e03f0dc0b5e8896ad29">coap_dtls_free_context</a></div><div class="ttdeci">void coap_dtls_free_context(void *dtls_context)</div><div class="ttdoc">Releases the storage allocated for dtls_context.</div></div>
<div class="ttc" id="agroup__dtls__internal_html_gae916047df669849d71470609242f32cc"><div class="ttname"><a href="group__dtls__internal.html#gae916047df669849d71470609242f32cc">coap_dtls_context_set_pki</a></div><div class="ttdeci">int coap_dtls_context_set_pki(struct coap_context_t *coap_context, coap_dtls_pki_t *setup_data, coap_dtls_role_t role)</div><div class="ttdoc">Set the DTLS context's default server PKI information.</div></div>
<div class="ttc" id="agroup__dtls__internal_html_gaf12fde0c5f40468e42ffd06d7ad23ba8"><div class="ttname"><a href="group__dtls__internal.html#gaf12fde0c5f40468e42ffd06d7ad23ba8">coap_dtls_receive</a></div><div class="ttdeci">int coap_dtls_receive(coap_session_t *coap_session, const uint8_t *data, size_t data_len)</div><div class="ttdoc">Handling incoming data from a DTLS peer.</div></div>
<div class="ttc" id="agroup__dtls__internal_html_gga4dbea8aa6943bcf865990b5cebb6bfa4a07db1c396fbda1115124a22b3b9cb4da"><div class="ttname"><a href="group__dtls__internal.html#gga4dbea8aa6943bcf865990b5cebb6bfa4a07db1c396fbda1115124a22b3b9cb4da">COAP_DTLS_ROLE_SERVER</a></div><div class="ttdeci">@ COAP_DTLS_ROLE_SERVER</div><div class="ttdoc">Internal function invoked for server.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00267">coap_dtls.h:266</a></div></div>
<div class="ttc" id="agroup__dtls__internal_html_gga4dbea8aa6943bcf865990b5cebb6bfa4a7f8045717b35f240ee46c987a8d9ce26"><div class="ttname"><a href="group__dtls__internal.html#gga4dbea8aa6943bcf865990b5cebb6bfa4a7f8045717b35f240ee46c987a8d9ce26">COAP_DTLS_ROLE_CLIENT</a></div><div class="ttdeci">@ COAP_DTLS_ROLE_CLIENT</div><div class="ttdoc">Internal function invoked for client.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00265">coap_dtls.h:265</a></div></div>
<div class="ttc" id="agroup__dtls_html_ga30c05cbcf1ca5320ff0349b59f8c7fcb"><div class="ttname"><a href="group__dtls.html#ga30c05cbcf1ca5320ff0349b59f8c7fcb">coap_get_tls_library_version</a></div><div class="ttdeci">coap_tls_version_t * coap_get_tls_library_version(void)</div><div class="ttdoc">Determine the type and version of the underlying (D)TLS library.</div><div class="ttdef"><b>Definition</b> <a href="coap__notls_8c_source.html#l00033">coap_notls.c:33</a></div></div>
<div class="ttc" id="agroup__dtls_html_ga55b3b545f0784c7a6135021017317e1b"><div class="ttname"><a href="group__dtls.html#ga55b3b545f0784c7a6135021017317e1b">coap_tls_is_supported</a></div><div class="ttdeci">int coap_tls_is_supported(void)</div><div class="ttdoc">Check whether TLS is available.</div><div class="ttdef"><b>Definition</b> <a href="coap__notls_8c_source.html#l00028">coap_notls.c:28</a></div></div>
<div class="ttc" id="agroup__dtls_html_ga8b3c5ffa695a8bfa575319a39517f980"><div class="ttname"><a href="group__dtls.html#ga8b3c5ffa695a8bfa575319a39517f980">coap_pki_key_t</a></div><div class="ttdeci">coap_pki_key_t</div><div class="ttdoc">The enum used for determining the PKI key formats.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00131">coap_dtls.h:131</a></div></div>
<div class="ttc" id="agroup__dtls_html_ga9def28dc6da3b77c14e89d63769ec085"><div class="ttname"><a href="group__dtls.html#ga9def28dc6da3b77c14e89d63769ec085">coap_dtls_is_supported</a></div><div class="ttdeci">int coap_dtls_is_supported(void)</div><div class="ttdoc">Check whether DTLS is available.</div><div class="ttdef"><b>Definition</b> <a href="coap__notls_8c_source.html#l00023">coap_notls.c:23</a></div></div>
<div class="ttc" id="agroup__dtls_html_gac823bdeb357bded215ac1f84dd47f38f"><div class="ttname"><a href="group__dtls.html#gac823bdeb357bded215ac1f84dd47f38f">coap_dtls_security_setup_t</a></div><div class="ttdeci">int(* coap_dtls_security_setup_t)(void *tls_session, struct coap_dtls_pki_t *setup_data)</div><div class="ttdoc">Additional Security setup handler that can be set up by coap_context_set_pki().</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00077">coap_dtls.h:77</a></div></div>
<div class="ttc" id="agroup__dtls_html_gacf1b8685e693c4c5fafe2d4d207c2069"><div class="ttname"><a href="group__dtls.html#gacf1b8685e693c4c5fafe2d4d207c2069">coap_asn1_privatekey_type_t</a></div><div class="ttdeci">coap_asn1_privatekey_type_t</div><div class="ttdoc">The enum used for determining the provided PKI ASN.1 (DER) Private Key formats.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00110">coap_dtls.h:110</a></div></div>
<div class="ttc" id="agroup__dtls_html_gad7c1c23e78398067ad9eb8bd70333735"><div class="ttname"><a href="group__dtls.html#gad7c1c23e78398067ad9eb8bd70333735">coap_dtls_sni_callback_t</a></div><div class="ttdeci">coap_dtls_key_t *(* coap_dtls_sni_callback_t)(const char *sni, void *arg)</div><div class="ttdoc">Server Name Indication (SNI) Validation call-back that can be set up by coap_context_set_pki().</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00182">coap_dtls.h:182</a></div></div>
<div class="ttc" id="agroup__dtls_html_gadcb9ad4ab157cf64b6bb31b5f426e5dc"><div class="ttname"><a href="group__dtls.html#gadcb9ad4ab157cf64b6bb31b5f426e5dc">coap_dtls_cn_callback_t</a></div><div class="ttdeci">int(* coap_dtls_cn_callback_t)(const char *cn, const uint8_t *asn1_public_cert, size_t asn1_length, coap_session_t *coap_session, unsigned depth, int validated, void *arg)</div><div class="ttdoc">CN Validation call-back that can be set up by coap_context_set_pki().</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00098">coap_dtls.h:98</a></div></div>
<div class="ttc" id="agroup__dtls_html_gga8b3c5ffa695a8bfa575319a39517f980a5685869e9efbf03fe4d05120ff810aef"><div class="ttname"><a href="group__dtls.html#gga8b3c5ffa695a8bfa575319a39517f980a5685869e9efbf03fe4d05120ff810aef">COAP_PKI_KEY_PEM</a></div><div class="ttdeci">@ COAP_PKI_KEY_PEM</div><div class="ttdoc">The PKI key type is PEM.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00132">coap_dtls.h:132</a></div></div>
<div class="ttc" id="agroup__dtls_html_gga8b3c5ffa695a8bfa575319a39517f980ad1bd86830b59058a381a07865bddd3b7"><div class="ttname"><a href="group__dtls.html#gga8b3c5ffa695a8bfa575319a39517f980ad1bd86830b59058a381a07865bddd3b7">COAP_PKI_KEY_ASN1</a></div><div class="ttdeci">@ COAP_PKI_KEY_ASN1</div><div class="ttdoc">The PKI key type is ASN.1 (DER)</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00133">coap_dtls.h:133</a></div></div>
<div class="ttc" id="agroup__dtls_html_ggacf1b8685e693c4c5fafe2d4d207c2069a05caf595fe597cf31b86e61e4dc21fe5"><div class="ttname"><a href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a05caf595fe597cf31b86e61e4dc21fe5">COAP_ASN1_PKEY_DH</a></div><div class="ttdeci">@ COAP_ASN1_PKEY_DH</div><div class="ttdoc">DH type.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00119">coap_dtls.h:119</a></div></div>
<div class="ttc" id="agroup__dtls_html_ggacf1b8685e693c4c5fafe2d4d207c2069a0d8b252581daca277bbc4aa490a6cc01"><div class="ttname"><a href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a0d8b252581daca277bbc4aa490a6cc01">COAP_ASN1_PKEY_NONE</a></div><div class="ttdeci">@ COAP_ASN1_PKEY_NONE</div><div class="ttdoc">NONE.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00111">coap_dtls.h:111</a></div></div>
<div class="ttc" id="agroup__dtls_html_ggacf1b8685e693c4c5fafe2d4d207c2069a17174dc07690f17fc0fd223c76bb25dc"><div class="ttname"><a href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a17174dc07690f17fc0fd223c76bb25dc">COAP_ASN1_PKEY_TLS1_PRF</a></div><div class="ttdeci">@ COAP_ASN1_PKEY_TLS1_PRF</div><div class="ttdoc">TLS1_PRF type.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00124">coap_dtls.h:124</a></div></div>
<div class="ttc" id="agroup__dtls_html_ggacf1b8685e693c4c5fafe2d4d207c2069a190dcef2ec78de18ce08555d285c40b7"><div class="ttname"><a href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a190dcef2ec78de18ce08555d285c40b7">COAP_ASN1_PKEY_RSA2</a></div><div class="ttdeci">@ COAP_ASN1_PKEY_RSA2</div><div class="ttdoc">RSA2 type.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00113">coap_dtls.h:113</a></div></div>
<div class="ttc" id="agroup__dtls_html_ggacf1b8685e693c4c5fafe2d4d207c2069a195328aaae1102658ebf3a9bd6d8c027"><div class="ttname"><a href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a195328aaae1102658ebf3a9bd6d8c027">COAP_ASN1_PKEY_DSA</a></div><div class="ttdeci">@ COAP_ASN1_PKEY_DSA</div><div class="ttdoc">DSA type.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00114">coap_dtls.h:114</a></div></div>
<div class="ttc" id="agroup__dtls_html_ggacf1b8685e693c4c5fafe2d4d207c2069a32fec5facd159d2c9ca9d00cd9fb904a"><div class="ttname"><a href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a32fec5facd159d2c9ca9d00cd9fb904a">COAP_ASN1_PKEY_DHX</a></div><div class="ttdeci">@ COAP_ASN1_PKEY_DHX</div><div class="ttdoc">DHX type.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00120">coap_dtls.h:120</a></div></div>
<div class="ttc" id="agroup__dtls_html_ggacf1b8685e693c4c5fafe2d4d207c2069a4d2b14a573ffb6194d1ba2789e831de2"><div class="ttname"><a href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a4d2b14a573ffb6194d1ba2789e831de2">COAP_ASN1_PKEY_DSA4</a></div><div class="ttdeci">@ COAP_ASN1_PKEY_DSA4</div><div class="ttdoc">DSA4 type.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00118">coap_dtls.h:118</a></div></div>
<div class="ttc" id="agroup__dtls_html_ggacf1b8685e693c4c5fafe2d4d207c2069a5d86ada626fc1b778eabec59952bec4d"><div class="ttname"><a href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a5d86ada626fc1b778eabec59952bec4d">COAP_ASN1_PKEY_DSA2</a></div><div class="ttdeci">@ COAP_ASN1_PKEY_DSA2</div><div class="ttdoc">DSA2 type.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00116">coap_dtls.h:116</a></div></div>
<div class="ttc" id="agroup__dtls_html_ggacf1b8685e693c4c5fafe2d4d207c2069a815f6139ef4796dc825afc72871b1425"><div class="ttname"><a href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a815f6139ef4796dc825afc72871b1425">COAP_ASN1_PKEY_RSA</a></div><div class="ttdeci">@ COAP_ASN1_PKEY_RSA</div><div class="ttdoc">RSA type.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00112">coap_dtls.h:112</a></div></div>
<div class="ttc" id="agroup__dtls_html_ggacf1b8685e693c4c5fafe2d4d207c2069a888108396b26f167f26e8a293e7c44e7"><div class="ttname"><a href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a888108396b26f167f26e8a293e7c44e7">COAP_ASN1_PKEY_DSA1</a></div><div class="ttdeci">@ COAP_ASN1_PKEY_DSA1</div><div class="ttdoc">DSA1 type.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00115">coap_dtls.h:115</a></div></div>
<div class="ttc" id="agroup__dtls_html_ggacf1b8685e693c4c5fafe2d4d207c2069a8f0d588891e977c023bcf6de079dc893"><div class="ttname"><a href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a8f0d588891e977c023bcf6de079dc893">COAP_ASN1_PKEY_HKDF</a></div><div class="ttdeci">@ COAP_ASN1_PKEY_HKDF</div><div class="ttdoc">HKDF type.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00126">coap_dtls.h:125</a></div></div>
<div class="ttc" id="agroup__dtls_html_ggacf1b8685e693c4c5fafe2d4d207c2069abeca018329efa3c03150aac3ba058c33"><div class="ttname"><a href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069abeca018329efa3c03150aac3ba058c33">COAP_ASN1_PKEY_EC</a></div><div class="ttdeci">@ COAP_ASN1_PKEY_EC</div><div class="ttdoc">EC type.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00121">coap_dtls.h:121</a></div></div>
<div class="ttc" id="agroup__dtls_html_ggacf1b8685e693c4c5fafe2d4d207c2069ac6a7ddf9cabc5273bb9a69de5e6971be"><div class="ttname"><a href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069ac6a7ddf9cabc5273bb9a69de5e6971be">COAP_ASN1_PKEY_DSA3</a></div><div class="ttdeci">@ COAP_ASN1_PKEY_DSA3</div><div class="ttdoc">DSA3 type.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00117">coap_dtls.h:117</a></div></div>
<div class="ttc" id="agroup__dtls_html_ggacf1b8685e693c4c5fafe2d4d207c2069ae0e54b44eb5c901d76ddca601e46bda0"><div class="ttname"><a href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069ae0e54b44eb5c901d76ddca601e46bda0">COAP_ASN1_PKEY_HMAC</a></div><div class="ttdeci">@ COAP_ASN1_PKEY_HMAC</div><div class="ttdoc">HMAC type.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00122">coap_dtls.h:122</a></div></div>
<div class="ttc" id="agroup__dtls_html_ggacf1b8685e693c4c5fafe2d4d207c2069ae170f1e0d7ec889322b1589b2a9f9923"><div class="ttname"><a href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069ae170f1e0d7ec889322b1589b2a9f9923">COAP_ASN1_PKEY_CMAC</a></div><div class="ttdeci">@ COAP_ASN1_PKEY_CMAC</div><div class="ttdoc">CMAC type.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00123">coap_dtls.h:123</a></div></div>
<div class="ttc" id="agroup__logging_html_ga2ed215efb94dd270a6d55fb274f62b52"><div class="ttname"><a href="group__logging.html#ga2ed215efb94dd270a6d55fb274f62b52">coap_dtls_set_log_level</a></div><div class="ttdeci">void coap_dtls_set_log_level(int level)</div><div class="ttdoc">Sets the (D)TLS logging level to the specified level.</div><div class="ttdef"><b>Definition</b> <a href="coap__notls_8c_source.html#l00076">coap_notls.c:76</a></div></div>
<div class="ttc" id="agroup__logging_html_gaa57b34084a2baf0b83e7ffea5653ea25"><div class="ttname"><a href="group__logging.html#gaa57b34084a2baf0b83e7ffea5653ea25">coap_dtls_get_log_level</a></div><div class="ttdeci">int coap_dtls_get_log_level(void)</div><div class="ttdoc">Get the current (D)TLS logging.</div><div class="ttdef"><b>Definition</b> <a href="coap__notls_8c_source.html#l00081">coap_notls.c:81</a></div></div>
<div class="ttc" id="anet_8h_html"><div class="ttname"><a href="net_8h.html">net.h</a></div></div>
<div class="ttc" id="apdu_8h_html"><div class="ttname"><a href="pdu_8h.html">pdu.h</a></div><div class="ttdoc">Pre-defined constants that reflect defaults for CoAP.</div></div>
<div class="ttc" id="astructcoap__context__t_html"><div class="ttname"><a href="structcoap__context__t.html">coap_context_t</a></div><div class="ttdoc">The CoAP stack's global state is stored in a coap_context_t object.</div><div class="ttdef"><b>Definition</b> <a href="net_8h_source.html#l00148">net.h:148</a></div></div>
<div class="ttc" id="astructcoap__dtls__key__t_html"><div class="ttname"><a href="structcoap__dtls__key__t.html">coap_dtls_key_t</a></div><div class="ttdoc">The structure that holds the PKI key information.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00161">coap_dtls.h:161</a></div></div>
<div class="ttc" id="astructcoap__dtls__key__t_html_a3ef67cd1eeaef460cc19c00bcabeb617"><div class="ttname"><a href="structcoap__dtls__key__t.html#a3ef67cd1eeaef460cc19c00bcabeb617">coap_dtls_key_t::pem</a></div><div class="ttdeci">coap_pki_key_pem_t pem</div><div class="ttdoc">for PEM keys</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00164">coap_dtls.h:164</a></div></div>
<div class="ttc" id="astructcoap__dtls__key__t_html_a975d3154f696292646d0ba1d8d613001"><div class="ttname"><a href="structcoap__dtls__key__t.html#a975d3154f696292646d0ba1d8d613001">coap_dtls_key_t::key</a></div><div class="ttdeci">union coap_dtls_key_t::@1 key</div></div>
<div class="ttc" id="astructcoap__dtls__key__t_html_aa241aa8d0dc8c425ddf97bf869f65abc"><div class="ttname"><a href="structcoap__dtls__key__t.html#aa241aa8d0dc8c425ddf97bf869f65abc">coap_dtls_key_t::key_type</a></div><div class="ttdeci">coap_pki_key_t key_type</div><div class="ttdoc">key format type</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00162">coap_dtls.h:162</a></div></div>
<div class="ttc" id="astructcoap__dtls__key__t_html_abf2a9f92eb9c30895e7ac7a6fb8cac78"><div class="ttname"><a href="structcoap__dtls__key__t.html#abf2a9f92eb9c30895e7ac7a6fb8cac78">coap_dtls_key_t::asn1</a></div><div class="ttdeci">coap_pki_key_asn1_t asn1</div><div class="ttdoc">for ASN.1 (DER) keys</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00165">coap_dtls.h:165</a></div></div>
<div class="ttc" id="astructcoap__dtls__pki__t_html"><div class="ttname"><a href="structcoap__dtls__pki__t.html">coap_dtls_pki_t</a></div><div class="ttdoc">The structure used for defining the PKI setup data to be used.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00191">coap_dtls.h:191</a></div></div>
<div class="ttc" id="astructcoap__dtls__pki__t_html_a1125f0a08bf12be0a1a0cb63a4f3f2af"><div class="ttname"><a href="structcoap__dtls__pki__t.html#a1125f0a08bf12be0a1a0cb63a4f3f2af">coap_dtls_pki_t::allow_no_crl</a></div><div class="ttdeci">uint8_t allow_no_crl</div><div class="ttdoc">1 ignore if CRL not there</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00202">coap_dtls.h:202</a></div></div>
<div class="ttc" id="astructcoap__dtls__pki__t_html_a16fb73f2ceb8aafed7256cdf9ffec8f6"><div class="ttname"><a href="structcoap__dtls__pki__t.html#a16fb73f2ceb8aafed7256cdf9ffec8f6">coap_dtls_pki_t::cn_call_back_arg</a></div><div class="ttdeci">void * cn_call_back_arg</div><div class="ttdoc">Passed in to the CN call-back function.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00219">coap_dtls.h:219</a></div></div>
<div class="ttc" id="astructcoap__dtls__pki__t_html_a1e82f78f5b4b930eb2cee687adbcb455"><div class="ttname"><a href="structcoap__dtls__pki__t.html#a1e82f78f5b4b930eb2cee687adbcb455">coap_dtls_pki_t::require_peer_cert</a></div><div class="ttdeci">uint8_t require_peer_cert</div><div class="ttdoc">1 if peer cert is required</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00196">coap_dtls.h:196</a></div></div>
<div class="ttc" id="astructcoap__dtls__pki__t_html_a3f0ebaa3461576eee13f74ea5a362247"><div class="ttname"><a href="structcoap__dtls__pki__t.html#a3f0ebaa3461576eee13f74ea5a362247">coap_dtls_pki_t::cert_chain_validation</a></div><div class="ttdeci">uint8_t cert_chain_validation</div><div class="ttdoc">1 if to check cert_chain_verify_depth</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00199">coap_dtls.h:199</a></div></div>
<div class="ttc" id="astructcoap__dtls__pki__t_html_a6311e9978d304e0aff143ebffe424ea4"><div class="ttname"><a href="structcoap__dtls__pki__t.html#a6311e9978d304e0aff143ebffe424ea4">coap_dtls_pki_t::version</a></div><div class="ttdeci">uint8_t version</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00192">coap_dtls.h:192</a></div></div>
<div class="ttc" id="astructcoap__dtls__pki__t_html_a6651ec064838213f18f49c6044cc7b4f"><div class="ttname"><a href="structcoap__dtls__pki__t.html#a6651ec064838213f18f49c6044cc7b4f">coap_dtls_pki_t::check_cert_revocation</a></div><div class="ttdeci">uint8_t check_cert_revocation</div><div class="ttdoc">1 if revocation checks wanted</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00201">coap_dtls.h:201</a></div></div>
<div class="ttc" id="astructcoap__dtls__pki__t_html_a85209ca6aa358e45b4b065b0c39dd360"><div class="ttname"><a href="structcoap__dtls__pki__t.html#a85209ca6aa358e45b4b065b0c39dd360">coap_dtls_pki_t::cert_chain_verify_depth</a></div><div class="ttdeci">uint8_t cert_chain_verify_depth</div><div class="ttdoc">recommended depth is 3</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00200">coap_dtls.h:200</a></div></div>
<div class="ttc" id="astructcoap__dtls__pki__t_html_a9e4bb23daf38e695b1fa7b7fddd0072d"><div class="ttname"><a href="structcoap__dtls__pki__t.html#a9e4bb23daf38e695b1fa7b7fddd0072d">coap_dtls_pki_t::additional_tls_setup_call_back</a></div><div class="ttdeci">coap_dtls_security_setup_t additional_tls_setup_call_back</div><div class="ttdoc">Additional Security call-back handler that is invoked when libcoap has done the standerd,...</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00234">coap_dtls.h:234</a></div></div>
<div class="ttc" id="astructcoap__dtls__pki__t_html_aa92df455480e1ce202d48fbac3ee5422"><div class="ttname"><a href="structcoap__dtls__pki__t.html#aa92df455480e1ce202d48fbac3ee5422">coap_dtls_pki_t::allow_expired_certs</a></div><div class="ttdeci">uint8_t allow_expired_certs</div><div class="ttdoc">1 if expired certs are allowed</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00198">coap_dtls.h:198</a></div></div>
<div class="ttc" id="astructcoap__dtls__pki__t_html_aac00e49483212c37c25435f03a6a6cb6"><div class="ttname"><a href="structcoap__dtls__pki__t.html#aac00e49483212c37c25435f03a6a6cb6">coap_dtls_pki_t::verify_peer_cert</a></div><div class="ttdeci">uint8_t verify_peer_cert</div><div class="ttdoc">Set to 1 to support this version of the struct.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00195">coap_dtls.h:195</a></div></div>
<div class="ttc" id="astructcoap__dtls__pki__t_html_abcd4a892d8823201b52597b702e70348"><div class="ttname"><a href="structcoap__dtls__pki__t.html#abcd4a892d8823201b52597b702e70348">coap_dtls_pki_t::client_sni</a></div><div class="ttdeci">char * client_sni</div><div class="ttdoc">If not NULL, SNI to use in client TLS setup.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00236">coap_dtls.h:236</a></div></div>
<div class="ttc" id="astructcoap__dtls__pki__t_html_ad078b00881086bb7425187f2e7de90ab"><div class="ttname"><a href="structcoap__dtls__pki__t.html#ad078b00881086bb7425187f2e7de90ab">coap_dtls_pki_t::validate_sni_call_back</a></div><div class="ttdeci">coap_dtls_sni_callback_t validate_sni_call_back</div><div class="ttdoc">SNI check call-back function.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00226">coap_dtls.h:226</a></div></div>
<div class="ttc" id="astructcoap__dtls__pki__t_html_ad125a6d4424f2603a9ff9df7338fd312"><div class="ttname"><a href="structcoap__dtls__pki__t.html#ad125a6d4424f2603a9ff9df7338fd312">coap_dtls_pki_t::allow_self_signed</a></div><div class="ttdeci">uint8_t allow_self_signed</div><div class="ttdoc">1 if self signed certs are allowed</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00197">coap_dtls.h:197</a></div></div>
<div class="ttc" id="astructcoap__dtls__pki__t_html_ad2742585d28821bdf8fe824b117643ac"><div class="ttname"><a href="structcoap__dtls__pki__t.html#ad2742585d28821bdf8fe824b117643ac">coap_dtls_pki_t::reserved</a></div><div class="ttdeci">uint8_t reserved[6]</div><div class="ttdoc">Reserved - must be set to 0 for future compatibility.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00204">coap_dtls.h:204</a></div></div>
<div class="ttc" id="astructcoap__dtls__pki__t_html_add86314537669f49fca148651fbf842e"><div class="ttname"><a href="structcoap__dtls__pki__t.html#add86314537669f49fca148651fbf842e">coap_dtls_pki_t::sni_call_back_arg</a></div><div class="ttdeci">void * sni_call_back_arg</div><div class="ttdoc">Passed in to the sni call-back function.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00227">coap_dtls.h:227</a></div></div>
<div class="ttc" id="astructcoap__dtls__pki__t_html_ae136f22847af5f51ded7b3f19bc538df"><div class="ttname"><a href="structcoap__dtls__pki__t.html#ae136f22847af5f51ded7b3f19bc538df">coap_dtls_pki_t::validate_cn_call_back</a></div><div class="ttdeci">coap_dtls_cn_callback_t validate_cn_call_back</div><div class="ttdoc">CN check call-back function.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00218">coap_dtls.h:218</a></div></div>
<div class="ttc" id="astructcoap__dtls__pki__t_html_ae1ae69b200d26250747f8602af02e990"><div class="ttname"><a href="structcoap__dtls__pki__t.html#ae1ae69b200d26250747f8602af02e990">coap_dtls_pki_t::allow_expired_crl</a></div><div class="ttdeci">uint8_t allow_expired_crl</div><div class="ttdoc">1 if expired crl is allowed</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00203">coap_dtls.h:203</a></div></div>
<div class="ttc" id="astructcoap__dtls__pki__t_html_affa25ec7295abef854ec772cb7a45325"><div class="ttname"><a href="structcoap__dtls__pki__t.html#affa25ec7295abef854ec772cb7a45325">coap_dtls_pki_t::pki_key</a></div><div class="ttdeci">coap_dtls_key_t pki_key</div><div class="ttdoc">PKI key definition.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00240">coap_dtls.h:240</a></div></div>
<div class="ttc" id="astructcoap__pki__key__asn1__t_html"><div class="ttname"><a href="structcoap__pki__key__asn1__t.html">coap_pki_key_asn1_t</a></div><div class="ttdoc">The structure that holds the PKI ASN.1 (DER) definitions.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00148">coap_dtls.h:148</a></div></div>
<div class="ttc" id="astructcoap__pki__key__asn1__t_html_a504bc3e7ee0b888a88dd6af563fcceb1"><div class="ttname"><a href="structcoap__pki__key__asn1__t.html#a504bc3e7ee0b888a88dd6af563fcceb1">coap_pki_key_asn1_t::private_key</a></div><div class="ttdeci">const uint8_t * private_key</div><div class="ttdoc">ASN1 (DER) Private Key.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00151">coap_dtls.h:151</a></div></div>
<div class="ttc" id="astructcoap__pki__key__asn1__t_html_a55296c7278c11f29066bdaac19b111b0"><div class="ttname"><a href="structcoap__pki__key__asn1__t.html#a55296c7278c11f29066bdaac19b111b0">coap_pki_key_asn1_t::private_key_type</a></div><div class="ttdeci">coap_asn1_privatekey_type_t private_key_type</div><div class="ttdoc">Private Key Type.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00155">coap_dtls.h:155</a></div></div>
<div class="ttc" id="astructcoap__pki__key__asn1__t_html_a7f0b82d44a05a9f4ae06e8e6c322c608"><div class="ttname"><a href="structcoap__pki__key__asn1__t.html#a7f0b82d44a05a9f4ae06e8e6c322c608">coap_pki_key_asn1_t::public_cert_len</a></div><div class="ttdeci">size_t public_cert_len</div><div class="ttdoc">ASN1 Public Cert length.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00153">coap_dtls.h:153</a></div></div>
<div class="ttc" id="astructcoap__pki__key__asn1__t_html_a943b8a66023d48fa9fe7ff105eff24f8"><div class="ttname"><a href="structcoap__pki__key__asn1__t.html#a943b8a66023d48fa9fe7ff105eff24f8">coap_pki_key_asn1_t::private_key_len</a></div><div class="ttdeci">size_t private_key_len</div><div class="ttdoc">ASN1 Private Key length.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00154">coap_dtls.h:154</a></div></div>
<div class="ttc" id="astructcoap__pki__key__asn1__t_html_a9c30a93f82295a4b25b5315a1ce4cbaa"><div class="ttname"><a href="structcoap__pki__key__asn1__t.html#a9c30a93f82295a4b25b5315a1ce4cbaa">coap_pki_key_asn1_t::ca_cert</a></div><div class="ttdeci">const uint8_t * ca_cert</div><div class="ttdoc">ASN1 (DER) Common CA Cert.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00149">coap_dtls.h:149</a></div></div>
<div class="ttc" id="astructcoap__pki__key__asn1__t_html_aa058c22c386cbb59fe33c3d17129a7fd"><div class="ttname"><a href="structcoap__pki__key__asn1__t.html#aa058c22c386cbb59fe33c3d17129a7fd">coap_pki_key_asn1_t::ca_cert_len</a></div><div class="ttdeci">size_t ca_cert_len</div><div class="ttdoc">ASN1 CA Cert length.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00152">coap_dtls.h:152</a></div></div>
<div class="ttc" id="astructcoap__pki__key__asn1__t_html_aa16f42c1efe11b074c64d5f3e94eda33"><div class="ttname"><a href="structcoap__pki__key__asn1__t.html#aa16f42c1efe11b074c64d5f3e94eda33">coap_pki_key_asn1_t::public_cert</a></div><div class="ttdeci">const uint8_t * public_cert</div><div class="ttdoc">ASN1 (DER) Public Cert.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00150">coap_dtls.h:150</a></div></div>
<div class="ttc" id="astructcoap__pki__key__pem__t_html"><div class="ttname"><a href="structcoap__pki__key__pem__t.html">coap_pki_key_pem_t</a></div><div class="ttdoc">The structure that holds the PKI PEM definitions.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00139">coap_dtls.h:139</a></div></div>
<div class="ttc" id="astructcoap__pki__key__pem__t_html_a318b04bfb39d934fae2639da5c599d11"><div class="ttname"><a href="structcoap__pki__key__pem__t.html#a318b04bfb39d934fae2639da5c599d11">coap_pki_key_pem_t::ca_file</a></div><div class="ttdeci">const char * ca_file</div><div class="ttdoc">File location of Common CA in PEM format.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00140">coap_dtls.h:140</a></div></div>
<div class="ttc" id="astructcoap__pki__key__pem__t_html_ae1785dd0521a14bc8835951312f55803"><div class="ttname"><a href="structcoap__pki__key__pem__t.html#ae1785dd0521a14bc8835951312f55803">coap_pki_key_pem_t::public_cert</a></div><div class="ttdeci">const char * public_cert</div><div class="ttdoc">File location of Public Cert in PEM format.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00141">coap_dtls.h:141</a></div></div>
<div class="ttc" id="astructcoap__pki__key__pem__t_html_afb80e3212cd4e8e5c9cb8f453bf5a942"><div class="ttname"><a href="structcoap__pki__key__pem__t.html#afb80e3212cd4e8e5c9cb8f453bf5a942">coap_pki_key_pem_t::private_key</a></div><div class="ttdeci">const char * private_key</div><div class="ttdoc">File location of Private Key in PEM format.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00142">coap_dtls.h:142</a></div></div>
<div class="ttc" id="astructcoap__session__t_html"><div class="ttname"><a href="structcoap__session__t.html">coap_session_t</a></div><div class="ttdef"><b>Definition</b> <a href="coap__session_8h_source.html#l00056">coap_session.h:56</a></div></div>
<div class="ttc" id="astructcoap__tls__version__t_html"><div class="ttname"><a href="structcoap__tls__version__t.html">coap_tls_version_t</a></div><div class="ttdoc">The structure used for returning the underlying (D)TLS library information.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00047">coap_dtls.h:47</a></div></div>
<div class="ttc" id="astructcoap__tls__version__t_html_a0a7319dc6fd261d2ce899ac3da26d4c1"><div class="ttname"><a href="structcoap__tls__version__t.html#a0a7319dc6fd261d2ce899ac3da26d4c1">coap_tls_version_t::built_version</a></div><div class="ttdeci">uint64_t built_version</div><div class="ttdoc">(D)TLS Built against Library Version</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00050">coap_dtls.h:50</a></div></div>
<div class="ttc" id="astructcoap__tls__version__t_html_acd0dcf58914dd79d6110bb4d6a910c58"><div class="ttname"><a href="structcoap__tls__version__t.html#acd0dcf58914dd79d6110bb4d6a910c58">coap_tls_version_t::version</a></div><div class="ttdeci">uint64_t version</div><div class="ttdoc">(D)TLS runtime Library Version</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00048">coap_dtls.h:48</a></div></div>
<div class="ttc" id="astructcoap__tls__version__t_html_aec97830d2623e4354e12e00467d3dcc2"><div class="ttname"><a href="structcoap__tls__version__t.html#aec97830d2623e4354e12e00467d3dcc2">coap_tls_version_t::type</a></div><div class="ttdeci">int type</div><div class="ttdoc">Library type.</div><div class="ttdef"><b>Definition</b> <a href="coap__dtls_8h_source.html#l00049">coap_dtls.h:49</a></div></div>
<div class="ttc" id="authash_8h_html_aba7bc1797add20fe3efdf37ced1182c5"><div class="ttname"><a href="uthash_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a></div><div class="ttdeci">unsigned char uint8_t</div><div class="ttdef"><b>Definition</b> <a href="uthash_8h_source.html#l00079">uthash.h:79</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_a14d23a24002734ac2a3b997119f008e.html">coap2</a></li><li class="navelem"><a class="el" href="coap__dtls_8h.html">coap_dtls.h</a></li>
    <li class="footer">Generated on Fri Dec 27 2024 09:57:44 for libcoap by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
  </ul>
</div>
</body>
</html>
